// DSCH 2.6c
// 08/08/02 15:56:44
// C:\Dsch2\Book on CMOS\LutStructure2.sch

module LutStructure2( F2,Value[4],F1,F0,Value[0],Value[1],Value[3],Value[5],
 Value[2],Value[6],Value[7],Enable4,Fout,Enable0,Enable1,Enable3,
 Enable2,Enable5,Enable7,Enable6);
 input F2,Value[4],F1,F0,Value[0],Value[1],Value[3],Value[5];
 input Value[2],Value[6],Value[7];
 output Enable4,Fout,Enable0,Enable1,Enable3,Enable2,Enable5,Enable7;
 output Enable6;
 not #(128) inv(w2,F2);
 nmos #(156) nmos(Fout,Value[4],Enable4); // 1.0u 0.12u
 not #(128) inv(w7,F1);
 not #(128) inv(w9,F0);
 nmos #(156) nmos(Fout,Value[6],Enable6); // 1.0u 0.12u
 nmos #(156) nmos(Fout,Value[0],Enable0); // 1.0u 0.12u
 nmos #(156) nmos(Fout,Value[1],Enable1); // 1.0u 0.12u
 nmos #(156) nmos(Fout,Value[5],Enable5); // 1.0u 0.12u
 nmos #(156) nmos(Fout,Value[2],Enable2); // 1.0u 0.12u
 nmos #(156) nmos(Fout,Value[3],Enable3); // 1.0u 0.12u
 nmos #(156) nmos(Fout,Value[7],Enable7); // 1.0u 0.12u
 and #(23) and3(Enable0,w2,w7,w9);
 and #(23) and3(Enable4,F2,w7,w9);
 and #(23) and3(Enable5,F2,w7,F0);
 and #(23) and3(Enable7,F2,F1,F0);
 and #(23) and3(Enable6,F2,F1,w9);
 and #(23) and3(Enable2,w2,F1,w9);
 and #(23) and3(Enable3,w2,F1,F0);
 and #(23) and3(Enable1,w2,w7,F0);
endmodule

// Simulation parameters in Verilog Format
always
#1000 F2=~F2;
#2000 Value[4]=~Value[4];
#3000 F1=~F1;
#4000 F0=~F0;
#5000 Value[0]=~Value[0];
#6000 Value[1]=~Value[1];
#7000 Value[3]=~Value[3];
#8000 Value[5]=~Value[5];
#9000 Value[2]=~Value[2];
#10000 Value[6]=~Value[6];
#11000 Value[7]=~Value[7];

// Simulation parameters
// F2 CLK 10 10
// Value[4] CLK 20 20
// F1 CLK 30 30
// F0 CLK 40 40
// Value[0] CLK 50 50
// Value[1] CLK 60 60
// Value[3] CLK 70 70
// Value[5] CLK 80 80
// Value[2] CLK 90 90
// Value[6] CLK 100 100
// Value[7] CLK 110 110
